Clara: A Framework for Partially Evaluating Finite-State Runtime Monitors Ahead of Time
نویسندگان
چکیده
Researchers have developed a number of runtime verification tools that generate runtime monitors in the form of AspectJ aspects. In this work, we present Clara, a novel framework to statically optimize such monitoring aspects with respect to a given program under test. Clara uses a sequence of increasingly precise static analyses to automatically convert a monitoring aspect into a residual runtime monitor. The residual monitor only watches events triggered by program locations that the analyses failed to prove safe at compile time. In two-thirds of the cases in our experiments, the static analysis succeeds on all locations, proving that the program fulfills the stated properties, and completely obviating the need for runtime monitoring. In the remaining cases, the residual runtime monitor is usually much more efficient than a full monitor, yet still captures all property violations at runtime.
منابع مشابه
Clara: Partially Evaluating Runtime Monitors at Compile Time - Tutorial Supplement
Clara is a novel static-analysis framework for partially evaluating finite-state runtime monitors at compile time. Clara uses static typestate analyses to automatically convert any AspectJ monitoring aspect into a residual runtime monitor that only monitors events triggered by program locations that the analyses failed to prove safe. If the static analysis succeeds on all locations, this gives ...
متن کاملMOPBox: A Library Approach to Runtime Verification
In this work we propose MOPBox, a library-based approach to runtime verification. MOPBox is a Java library for defining and evaluating parametric runtime monitors. A user can define monitors through a simple set of API calls. Once a monitor is defined, it is ready to accept events. Events can originate from AspectJ aspects or from other sources, and they can be parametric, i.e., can contain var...
متن کاملVerifying finite-state properties of large-scale programs
Designers of software components can use finite-state properties to denote behavioral interface specifications which enforce client-side programming rules that state how the components ought to be used. This allows users of these components to check their client code for compliance with these rules, both statically and at runtime. In this dissertation we explain the design and implementation of...
متن کاملEfficient and Precise Typestate Analysis by Determining Continuation-Equivalent States
Typestate analysis determines whether a program violates a set of finite-state properties. Because the typestate-analysis problem is statically undecidable, researchers have proposed a hybrid approach that uses residual monitors to signal property violations at runtime. We present an efficient novel static typestate analysis that is flow-sensitive, partially context-sensitive, and that generate...
متن کاملOn the Expressiveness of Parameterized Finite-state Runtime Monitors On the Expressiveness of Parameterized Finite-state Runtime Monitors?
Many contemporary runtime-verification tools instrument a program under test with finite-state runtime monitors that can be parameterized through variable-to-object bindings. Often, such tools provide a specification formalism that is some form of syntactic extension to an aspect-oriented programming language. The tools then transform monitor specifications into aspects that bind the monitors’ ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2010